package resolution;

import java.util.ArrayList;
import java.util.Random;

import Objet.Boite;
import Objet.ListeObjets;
import Objet.Objet;
import Probleme.Instance;
import Probleme.Solution;

public class ResolutionRandom {
	Solution s;
	public ResolutionRandom(Instance instance) {
		
		this.s = new Solution();
		ListeObjets objets = new ListeObjets();
		objets.append(instance.getObjets());
		
		ArrayList<Boite> lesBoites = new ArrayList<Boite>();
		
		while (!objets.toutPlace()) {
			
			Objet o = null;
			
	
			while ((o == null) || o.place) {
				Random r = new Random();
				int nb =r.nextInt(objets.size());
				o = objets.get(nb);
				
			}

			int i = 0;
			while ((i < lesBoites.size()) && !o.place) {
				Boite b = lesBoites.get(i);
				if (b.getPlaceReste() >= o.getPoids()) {
					b.placer(o);
					o.setPlace(true);
				}
				i++;
			}
			
			if (!o.place) {
				lesBoites.add(new Boite(lesBoites.size() + 1, instance.PoidsMax));
			}
			
		}
		
		this.s.setLesBoites(lesBoites);
		
	}
	
	public Solution getS() {
		return this.s;
	}
}
